有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android:将Seekbar的一个值与另一个值进行比较

在我的活动中有两个SeekBars,但现在我想限制SeekBar的值差大于等于一。我该怎么做?这是我的xml文件:

<LinearLayout 
   安卓:layout_width="fill_parent"
   安卓:layout_height="wrap_content"
   安卓:orientation="vertical"
>
     <TextView

          安卓:layout_width="match_parent"
          安卓:layout_height="wrap_content"
          安卓:text="Rs. 0L"
          安卓:id="@+id/min_budget"
    />

    <SeekBar     
          安卓:layout_width="match_parent"
          安卓:layout_height="wrap_content"
          安卓:id="@+id/budget_min_seekbar"
    />

</LinearLayout>  

<LinearLayout 
    安卓:layout_width="fill_parent"
    安卓:layout_height="wrap_content"
    安卓:orientation="vertical"
>

 <TextView

    安卓:layout_width="match_parent"
    安卓:layout_height="wrap_content"
    安卓:text="No Limit"
    安卓:id="@+id/max_budget"
    />

<SeekBar 
 安卓:layout_width="match_parent"
 安卓:layout_height="wrap_content"
 安卓:id="@+id/budget_max_seekbar"
  />      
</LinearLayout>  

相应的Java文件如下所示:

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.fragment_budget_filter, container, false);

    SeekBar max_budget_sbar = (SeekBar) rootView.findViewById(R.id.budget_max_seekbar);
    TextView max_budget_tv = (TextView) rootView.findViewById(R.id.max_budget);
    SeekBar min_budget_sbar = (SeekBar) rootView.findViewById(R.id.budget_min_seekbar);
    TextView min_budget_tv = (TextView) rootView.findViewById(R.id.min_budget);
    AndroidSeekBar set_max= new AndroidSeekBar(max_budget_sbar, max_budget_tv,1);
    AndroidSeekBar set_min= new AndroidSeekBar(min_budget_sbar, min_budget_tv,1);

    return rootView;
}

AndroidSeekBar类根据SeekBar的位置设置TexView的值,并具有以下代码:

 .....  
 public AndroidSeekBar(SeekBar id1, TextView textid,int type){
/** Called when the activity is first created. */

    PRICEbar = id1; // make seekbar object
    SeekValue = textid;

    int progress = PRICEbar.getProgress();

    PRICEbar.setTag(String.valueOf(type));

    PRICEbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){ 

           @Override 
           public void onProgressChanged(SeekBar seekBar, int progress, 
             boolean fromUser) { 
               int type=Integer.parseInt(seekBar.getTag().toString());
                if(type==1){
                    if(progress>95){
                        SeekValue.setText("No Limit");
                    }
                    else{
                        float value = (float)(progress*2/10);
                         SeekValue.setText("Rs. "+ String.valueOf(progress) + " L");
                    }   
                }


           } 
 ....
}   

共 (0) 个答案